package com.ruoyi.ldzlsb.service;

import java.util.List;
import com.ruoyi.ldzlsb.domain.SbInspectionConfig;

/**
 * 巡检配置Service接口
 * 
 * @author anli
 * @date 2025-01-11
 */
public interface ISbInspectionConfigService 
{
    /**
     * 查询巡检配置
     * 
     * @param configId 巡检配置主键
     * @return 巡检配置
     */
    public SbInspectionConfig selectSbInspectionConfigByConfigId(Long configId);

    /**
     * 查询巡检配置列表
     * 
     * @param sbInspectionConfig 巡检配置
     * @return 巡检配置集合
     */
    public List<SbInspectionConfig> selectSbInspectionConfigList(SbInspectionConfig sbInspectionConfig);

    /**
     * 查询巡检配置列表(包含设备类型名称)
     * 
     * @param sbInspectionConfig 巡检配置
     * @return 巡检配置集合
     */
    public List<SbInspectionConfig> selectSbInspectionConfigWithTypeList(SbInspectionConfig sbInspectionConfig);

    /**
     * 新增巡检配置
     * 
     * @param sbInspectionConfig 巡检配置
     * @return 结果
     */
    public int insertSbInspectionConfig(SbInspectionConfig sbInspectionConfig);

    /**
     * 修改巡检配置
     * 
     * @param sbInspectionConfig 巡检配置
     * @return 结果
     */
    public int updateSbInspectionConfig(SbInspectionConfig sbInspectionConfig);

    /**
     * 批量删除巡检配置
     * 
     * @param configIds 需要删除的巡检配置主键集合
     * @return 结果
     */
    public int deleteSbInspectionConfigByConfigIds(Long[] configIds);

    /**
     * 删除巡检配置信息
     * 
     * @param configId 巡检配置主键
     * @return 结果
     */
    public int deleteSbInspectionConfigByConfigId(Long configId);

    /**
     * 校验配置编码是否唯一
     * 
     * @param sbInspectionConfig 巡检配置
     * @return 结果 (true=唯一,false=不唯一)
     */
    public boolean checkConfigCodeUnique(SbInspectionConfig sbInspectionConfig);

    /**
     * 根据配置编码查询巡检配置
     * 
     * @param configCode 配置编码
     * @return 巡检配置
     */
    public SbInspectionConfig selectSbInspectionConfigByConfigCode(String configCode);

    /**
     * 根据设备类型ID查询巡检配置列表
     * 
     * @param equipmentTypeId 设备类型ID
     * @return 巡检配置集合
     */
    public List<SbInspectionConfig> selectSbInspectionConfigByEquipmentTypeId(Long equipmentTypeId);

    /**
     * 导入巡检配置数据
     * 
     * @param configList 巡检配置列表
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    public String importInspectionConfig(List<SbInspectionConfig> configList, Boolean isUpdateSupport, String operName);

    /**
     * 生成配置编码
     * 
     * @return 配置编码
     */
    public String generateConfigCode();
} 